package com.boot.web.dao;

import com.boot.web.entity.User;
import com.boot.base.dao.BaseDao;
import com.boot.web.vo.MenuPowerVO;
import com.boot.web.vo.UserVO;

import java.util.List;
import java.util.Map;

/**
 * 系统用户信息数据层接口
 * @author 【zhouJie】
 * @date 2019-12-05 17:31:35
 */
public interface UserDao extends BaseDao<User> {

    /**
     * 根据登录名查询用户信息
     * @param loginName
     * @return
     */
    User queryUserByLoginName(String loginName);

    /**
     * 查询当前登录用户拥有的菜单页面
     * @param userId
     * @return
     */
    List<MenuPowerVO> queryUserAllPowerByOneLevel(Integer userId);      //TODO 一级

    List<MenuPowerVO> queryUserAllPowerByTwoLevel(Integer userId);      //TODO 二级

    List<MenuPowerVO> queryUserAllPowerByThreeLevel(Integer userId);    //TODO 三级

    List<MenuPowerVO> queryUserAllPowerByFourLevel(Integer userId);     //TODO 四级

    /**
     * 根据模糊条件查询用户信息 + 分页 +（部门/角色）
     * @param map
     * @return
     */
    List<UserVO> queryUserVOPageList(Map<String, Object> map);

    /**
     * 根据手机号码查询用户信息
     * @param phone
     * @return
     */
    User queryUserByPhone(String phone);

    /**
     * 根据邮箱查询用户信息
     * @param email
     * @return
     */
    User queryUserByEmail(String email);

    /**
     * 根据部门ID查询下面的用户
     * @param departmentId
     * @return
     */
    List<User> queryUserByDepartmentId(Integer departmentId);

}
